package com.hw.disruptor.eventFactory;

import com.hw.disruptor.event.LongEvent;
import com.lmax.disruptor.EventFactory;

/**
 * @program: disruptor-quickstart
 * @author: hewei
 * @date: 2023-07-06 14:51
 * <p>
 *     为了使用Disruptor的内存预分配event，我们需要定义一个EventFactory。
 * 事件工厂(Event Factory)定义了如何实例化自定义的事件(Event)，需要实现接口com.lmax.disruptor.EventFactory。
 * Disruptor 通过 EventFactory 在 RingBuffer 中预创建 Event 的实例。
 * 一个 Event 实例实际上被用作一个“数据槽”，发布者发布前，先从 RingBuffer 获得一个 Event 的实例，然后往 Event 实例中填充数据，
 * 之后再发布到 RingBuffer 中，之后由 Consumer 获得该 Event 实例并从中读取数据。
 * </p>
 **/
public class LongEventFactory implements EventFactory<LongEvent> {
    @Override
    public LongEvent newInstance() {
        return new LongEvent();
    }
}

